/* 
 * File:   MutationOperators.h
 * Author: jcrada
 *
 * Created on April 7, 2009, 8:11 PM
 */

#ifndef _MUTATIONOPERATORS_H
#define	_MUTATIONOPERATORS_H

#include "GeneticOperators.h"
#include "TreeGenerator.h"
#include "CrossoverOperators.h"
namespace jcrada {

    class RegularMutation : public MutationOperator {
    public:
        virtual TreeOfNodes* mutate( const TreeOfNodes& victim, TreeGenerator& mutation_generator );
    };

    class FairSizeMutation : public MutationOperator {
    private:
        FairSizeCrossover _fair_size_crossover;
    public:
        virtual TreeOfNodes* mutate( const TreeOfNodes& victim, TreeGenerator& mutation_generator );
    };
}

#endif	/* _MUTATIONOPERATORS_H */

